《台大机器学习基石》VC Dimension
VC Bound
我们通过上一篇文章中了解到了break point
以及Growth Function
之后,
我们将Growth Function
的上界设为B(N,k)
(maximum possible m_H(N) when break point = k),表示在break point
的k
的情况下,其mH(N)
的最大值,用通俗的话来说,在N
个点中,任意取k
个点不能shatter
。
证明
那能否证明B(N,k)<=ploy(N)
呢?
先来看下面这个表,其中当前纵向有N
,横向表示具体的k
值,表中的内容就是需要计算的B(N,k)
值
B(2,2)=3,B(3,2)=4 手算-_-
因为任意两个点都不能被shatter
,那么2个点产生的dichotomies
不能超过3,同理3个点产生的dichotomies
不能超过4B(N,1)=1
2^1=2 而最大值不能超过2,所以这里最大值都为1B(N,k)=2N 当
N<k
这里的2N<2k2
必然成立,所以最大值直接取2N,不然多余选的点也都是重复的。B(N,k)=2N-1 当
N=k
在N=k
的情况下满足全部不可能(点的所有组合为不可能),但是这里再减去一种就可以满足了B(N,k)<=B(N-1,k)+B(N-1,k-1) 当
N>k
表中新添的值为上限的上限,耐心地看下上图的推导-_-- 通过计算机暴力求解B(4,3)=11,(一共16种
dichotomies
,再从其中选不同情况的dichotomies
来计算是否被shatter
,最终有216情况)
右侧着色的图中橙色的点在x1
,x2
,x3
这三个维度是一样的,x4
这个维度是不一样的(也就是传说中的成双成对),蓝色的点在x1
,x2
,x3
无法找到全部一样的 - 现在将
x4
这个点遮掉
- 同时将蓝色的遮掉
这里不能多余2个点被shatter
- 整理之后就可以得到如下关系式
- 写成通用式子为
即得解^_^
- 通过计算机暴力求解B(4,3)=11,(一共16种
根据上限的上限的递推式,再结合数学归纳法可以得到
它的最高项的指数是k-1
那么现在:
Growth Function
会被上限B(N,k)
bound住- 而
B(N,k)
又会被上限的上限bound住 - 这个上限的上限的多项式和
break point
点有关 - 所以可以得出结果,只要
break point
点存在,那么他的Growth Function
最终会是一个多项式
但是然并卵,mH(N)
并无法直接代入到之前的
计算VC
主要是因为:
Ein(h)
的hypothesis
可能取值是有限个的,但Eout(h)
的可能取值是无限的。可以通过将Eout(h)
替换为验证集(verification set) 的Ein‘
来解决这个问题。
好,那么接下来主要经历如下三个步骤:
- 使用
Ein‘
来代替Eout
- 这样最终可能出现的
H(x1,x2..xn,x1’,x2’…xn’)
- 使用不替换的
Hoeffding
最终得到了著名的VC Bound
那么终于可以说明空间存在有限的break point,并且采样的资料量N够多,就可以保证找到一个Ein(h)最小的时候,得到最小的Eout(h),也就是说明Learning的可行性
VC Dimension
定义
先来看一下VC Dimension
的定义VC Dimension
表示在N
个点中能够shatter
的最大的值,也就是k-1
(k
为break point
,该值时不能shatter
的最小值)
这样的话就可以很容易计算出我们之前一直在讨论的那几种情况的VC Dimension
那么我们可以知道好的VC Dimension
应该是有限的,这样才可以保证Ein≈Eout
同时这样就就会有
VC Dimension
与算法A无关VC Dimension
与数据p的分布无关VC Dimension
与目标函数f无关
说了这么多,看一下VC Dimension
与大M
的关系
这样就可以看到:
M
很小的时候,得到的Ein
、Eout
会非常相似,但是可选的Ein
太少了,可能到最后选择了 一个较大的Ein
M
很大的时候,可选的Ein
比较多,可能到最后得到的Ein
得到的Ein
、Eout
可能不怎么想相似VC Dimension
很小的时候,与第一条一样,但是区别的是它的自由度受到了限制VC Dimension
很大的时候,与第二条一样,但是区别的是它的自由度没受限制,很自由
VC Dimension
反映了假设空间hypothesis set
的强大程度,VC Dimension
越大,hypothesis set
也越强,因为它可以shatter
更多的点。
物理意义
VC Dimension
的物理意义是表示二元分类下的自由度是多少,而这个自由度是表示参数w
的维度
模型复杂度
现在将之前任意一hypothesis
发生坏事的概率VC bound
变一下形
最终,根号里面的叫做模型复杂度,模型的复杂度越大,其泛化能力就会越低,这个模型的复杂度越与三个项有关:
N
,抽样有多少个点H
,这里的VC Dimension
有多大δ
,Ein
与Eout
相似在一个阈值内的概率
现在在图上画出三者的关系:
那么可以看到随着VC Dimension
越大,其模型复杂度也会越大,Ein
会变小,但是Eout
会有像图中一样一个山谷形的表现,最小的Eout
会在中间
所以更加深层次的可以了解到,我们并不是把Ein
做的越小越好,因为这个时候可能会导致模型复杂度变大,从而最终使Eout
也会变大,真正会做机器学习的人在优化Ein
的同时会考虑带来的其他复杂度的代价。
采样复杂度
VC bound
的另一个意义就是模型复杂度
那就现在给你
这些参数,那么如果计算使用最少的样本量来完成上述需求,计算过程可以参考下面
而在理论上需要的样本是N≈10000dvc
但是其实在实际上N≈10dvc
即可,
为什么会这样呢?
这是因为VC bound
推导的过程很宽松,里面很多假设都是取了上限
所以,模型较复杂时(
N≈10dvc
较大),需要更多的训练数据
除此外,我们为了避免overfit,一般都会加正则项。那加了正则项后,新的假设空间会得到一些限制,此时新假设空间的VC维将变小,也就是同样训练数据条件下,Ein更有可能等于Eout,所以泛化能力更强。这里从VC维的角度解释了正则项的作用。
参考
- 《台湾国立大学-机器学习基石》第六讲
- 《台湾国立大学-机器学习基石》第七讲
- VC维的来龙去脉
配图均来自《台湾国立大学-机器学习基石》
本作品采用[知识共享署名-非商业性使用-相同方式共享 2.5]中国大陆许可协议进行许可,我的博客欢迎复制共享,但在同时,希望保留我的署名权kubiCode,并且,不得用于商业用途。如您有任何疑问或者授权方面的协商,请给我留言。